/*
 * Filename DomianBizCode.java 2021年08月19日
 * Copyright © Ehome Co.Ltd. All Rgiths Reserved.
 * @author wuyingchao
 */
package com.ehome.poct.core.api.common;


import com.ehome.exception.BaseBusiEnum;

/**
 * 领域 业务异常码
 *
 * @author wyc
 * @date 2021/08/19 15:06
 **/
public enum DomainBizCode implements BaseBusiEnum {

    /**
     * 没有订单项异常
     */
    NO_ORDER_ITEM(11050401, "订单项不存在，创建订单失败！"),
    /**
     * 金额非法异常
     */
    AMOUNT_ILLEGAL(11050402, "金额不能小于零！"),
    /**
     * 设备编号不存在异常
     */
    NO_DEVICE(11050403, "设备编号不存在！"),
    /**
     * 创建订单失败异常
     */
    ORDER_ADD_FAIL(11050404, "创建订单失败！"),
    /**
     * 报告不存在
     */
    REPORT_NOT_EXITS(11050405, "报告不存在！"),
    CALL_ALGO_ERROR(11050501, "调用算法失败！"),
    TODO_NOT_EXITS(11050601, "本次联测已取消，如需检测请重新检测"),
    /**
     * 登录失败，账号密码有误
     */
    LOGIN_FAIL(10030114, "登录失败，账号密码有误！"),
    /**
     * 密码为空
     */
    PWD_EMPTY(10030115, "请输入密码！"),
    /**
     * 验证码为空
     */
    VERIFY_EMPTY(10030116, "请输入验证码！"),
    /**
     * 验证码为空
     */
    WX_ACCESS_ERROR(10030117, "微信授权失败，或者未关注掌中测公众号！"),
    /**
     * 验证码为空
     */
    OPENID_NOT_EXIST(10030118, "用户不存在！"),
    /**
     * 检测数据保存失败
     */
    CHECK_DATA_SAVE_FAILD(10030105, "检测数据保存失败！"),
    /**
     * 没有上传图片
     */
    IMAGE_NOT_EXIST(10030201,"没有上传图片！"),
    /**
     * 找不到此设备
     */
    DEVICE_NOT_FOUND(20010100,"找不到此设备！"),
    /**
     * 设备没有绑定诊所
     */
    DEVICE_NOT_BAND_CLINIC(20010103,"设备没有绑定诊所！"),
    /**
     * 当前诊所绑定的设备不一致
     */
    CLINIC_BIND_DEVICE_NOT_SAME(20010101,"当前诊所绑定的设备不一致！"),
    /**
     * 找不到此设备地址
     */
    DEVICE_API_URL_NOT_FOUND(20010102,"找不到此设备地址！"),
    /**
     * 没有找到对应的检测类型
     */
    STRIP_TYPE_NOT_EXIST(20010200 ,"没有找到对应的检测类型！"),
    /**
     * 试纸已过期
     */
    TEST_STRIP_EXPIRED(20010201,"试纸异常！"),
    /**
     * 计数板没有入库
     */
    CELL_SAMPLE_MATERIAL_NOT_EXIST(20010202,"计数板没有入库！"),

    /**
     * 传入的数据含有重复的检测类型
     */
    CHECK_DATA_CONTAIN_REPETITION_STRIP(20010301,"传入的数据含有重复的检测类型!"),

    /**
     * 没有找到此检测数据
     */
    CHECK_DATA_NOT_FOUND(20010302, "没有找到此检测数据!"),
    /**
     * 没有找到此诊所！
     */
    CLIENT_NOT_FOUND(200201001,"没有找到此诊所！"),
    /**
     * 诊所检测有效期已过！
     */
    SPECIAL_CLIENT_NOT_EFFECTIVE(200201002,"账户暂时被禁用不可操作，请联系运营部启用账户 ！"),
    /**
     * 检测算法报错
     */
    TEST_ALGO_ERROR(20030101,"检测算法报错！"),
    /**
     * 保存单项报告失败
     */
    CHECK_SINGLE_REPORT_DATA_SAVE_FAILD(20040100,"保存单项报告失败！"),
    /**
     * 保存联测报告失败
     */
    CHECK_MULTI_REPORT_DATA_SAVE_FAILD(20040101,"保存联测报告失败！"),
    /**
     * 没有获取到报告配置信息
     */
    REPORT_CONFIG_INFO_MISSING(20040201,"没有获取到报告配置信息!"),
    /**
     * 没有找到此批次的解读配置
     */
    STRIP_BATCH_ANALYSIS_CONFIG_MISSING(20040202,"没有找到此批次的解读配置！"),
    /**
     * 没有找到对应的联合解读配置
     */
    REPORT_ANALYSIS_CONFIG_FOR_ANALYSIS_MISSING(20040203,"没有找到对应的联合解读配置!"),
    /**
     * 没有价格方案
     */
    PRICE_PROFITS_MISSING(20050100,"没有价格方案!"),
    /**
     * 订单不存在
     */
    ORDER_NOT_EXIT(20060101, "订单不存在！"),
    /**
     * 订单项不存在
     */
    ORDER_ITEM_NOT_EXIT(20060102,"订单项不存在！"),
    /**
     * 微信授权失败
     */
    GET_OPENID_ERROR(20070101,"微信授权失败！"),
    /**
     * 微信授权失败
     */
    PWD_ENCRYPT_ERROR(20080101,"加密失败，请重试"),
    /**
     * 第三方活动配置信息没有或失效
     */
    USER_PROMOTION_CONFIG_NOT_FOUND(30000001,"第三方活动配置信息没有或失效！"),
    /**
     * 活动不存在
     */
    PROMOTION_NOT_FOUND(30000002,"活动不存在！"),

    /**
     * 活动暂没开始
     */
    PROMOTION_NOT_START(30000003,"活动暂没开始！"),
    /**
     * 活动已结束
     */
    PROMOTION_TIME_OVER(30000003,"活动已结束！"),
    /**
     * 不能参与多个打折活动
     */
    PROMOTION_CLINIC_DISCOUNT_MULTI(30000004,"不能参与多个打折活动！"),
    /**
     * 没有此检测项的权限
     */
    FORBIDDEN_STRIP_TYPE_CHECK(40404040,"没有此检测项的权限！"),
    /**
     * 联测已取消
     */
    OL_TEST_IS_CANCEL(50000101,"本次联测已取消。如需检测请重新检测！"),
    /**
     * 价格方案已存在相同名称的价格方案
     */
    PRICE_SCHEME_NAME_ALREADY_EXISTS(19990923,"操作失败，已存在相同名称的价格方案");
    ;


    /**
     * 业务码
     */
    private final Integer busiCode;

    /**
     * 信息
     */
    private final String msg;

    DomainBizCode(Integer busiCode, String msg) {
        this.busiCode = busiCode;
        this.msg = msg;
    }

    @Override
    public Integer getBusiCode() {
        return busiCode;
    }

    @Override
    public String getMsg() {
        return msg;
    }
}